import { RoutesListState } from '@/store/interface/index';
const routeStore = defineStore({
	// 这里的id必须为唯一ID
	id: 'routeStore',
	state: (): RoutesListState => {
		return {
			routesList: [], // 设置路由，菜单中使用到
			isColumnsMenuHover: false, // 设置分栏布局，鼠标是否移入移出（菜单）
			isColumnsNavHover: false, // 设置分栏布局，鼠标是否移入移出（菜单）
		};
	},
	// 等同于vuex的getter
	getters: {},
	// pinia 放弃了 mutations 只使用 actions
	actions: {
		// actions可以用async做成异步形式
		async setRoutesList(data: Array<Object>) {
			this.routesList = data;
		},
		async setColumnsMenuHover(bool: Boolean) {
			this.isColumnsMenuHover = bool;
		},
		async setColumnsNavHover(bool: Boolean) {
			this.isColumnsNavHover = bool;
		},
	},
	// 开启数据缓存
	persist: {
		enabled: true,
		strategies: [
			{
				// key可以自己定义，不填的话默认就是这个store的ID
				//key: 'user_store',
				// 保存位置，默认保存在sessionStorage storage可以填sessionStorage，localStorage
				storage: sessionStorage,
				// 指定要持久化的数据，默认所有 state 都会进行缓存，你可以通过 paths 指定要持久化的字段，其他的则不会进行持久化。
				//paths: ['userId'],
			},
		],
	},
});

export default routeStore;
